iT邦幫忙

DAY 22
4

VMware vSphere Hypervisor (ESXi) 30天基礎速成班系列 第 25

(VMesxi 備份篇-Day22) VMware ESXi 備份 ghettoVCB.sh 進階設定

  • 分享至 

  • xImage
  •  

在了解 [(VMesxi 備份篇-Day21) VMware ESXi 備份 ghettoVCB.sh 基本設定
] 後,接下來就來介紹一些比較進階的用法。有助於整體 ghettoVCB 的設定。本篇主要說明進階設定的部份,較為細部若有不懂的請在查看基本設定。

設定項目

  1. 修改LOG存放位置
  2. 設定NFS
  3. 設定MAIL
  4. 防火牆設定
  5. 排程設定

上一篇 (VMesxi 備份篇-Day21) VMware ESXi 備份 ghettoVCB.sh 基本設定
下一篇 (VMesxi 備份篇-Day23) VMware ESXi 備份還原ghettoVCB-restore.sh 設定
VMware vSphere Hypervisor (ESXi) 30天基礎速成班(文章彙整)
文章同步 FAQ BOOK
進階設定
1. 修改LOG存放位置
由於VMware ESXi 重開機後會自動還原一些設定,造成備份後所產生的LOG被刪除掉。所以為了避免此問題發生。可以手動修改LOG儲存位置的設定,才不會每次一重開機後資料就不見了。(建議存到/vmfs/volumes/datastore1內或是自行設定的NFT內)
建立存放LOG的資料夾並修改設定 提供修改好的 ghettoVCB.sh
參考

~ # mkdir /vmfs/volumes/datastore1/log
~ # vi ghettoVCB.sh
# /LOG_OUTPUT 搜尋此字串後找到,以下訊息
# 修改tmp 改為指定存放log的路徑

# 修改前
USE_VM_CONF=0                                                                  
USE_GLOBAL_CONF=0                                          
BACKUP_ALL_VMS=0                         
EXCLUDE_SOME_VMS=0                                                           
EMAIL_LOG_HEADER=/tmp/ghettoVCB-email-$$.header                                                  
EMAIL_LOG_OUTPUT=/tmp/ghettoVCB-email-$$.log                                     
EMAIL_LOG_CONTENT=/tmp/ghettoVCB-email-$$.content

# 修改後
USE_VM_CONF=0                                                                  
USE_GLOBAL_CONF=0                                          
BACKUP_ALL_VMS=0                         
EXCLUDE_SOME_VMS=0                                                           
EMAIL_LOG_HEADER=/vmfs/volumes/datastore1/log/ghettoVCB-email-$$.header                                                  
EMAIL_LOG_OUTPUT=/vmfs/volumes/datastore1/log/ghettoVCB-email-$$.log                                     
EMAIL_LOG_CONTENT=/vmfs/volumes/datastore1/log/ghettoVCB-email-$$.content

2. 設定NFS
在設定NFS的方式有兩種,請選一種適合的就可以了
2.1 長久掛載nfs
[Configuration]→[Storage]→[Ass Storage]→[Network File System]

Server:請輸入NFS主機的IP或是名稱
Folder:請輸入NFS主機所分享資料夾的完整路徑
Datastore Name:請輸入在ESXI上NFS資料夾的名稱
然後就一直按Next就可以完成了

完成後就會看到多出一個NFS的資料夾

2.2 需要才掛載
當有備份需要使用到NFS時才會自動掛載上去,一旦備份完成後就會自動卸載,並不會持續的掛載。
依照以下提示設定就可完成

3.設定MAIL
可用來方便管理備份,透過mail察看是否備份成功。
3.1 修改設定值
以下設定,請依照個人情況來修改設定。 提供修改好的 ghettoVCB.sh 參考

如果設定執行 ghettoVCB.sh 寄送mail,且出現以下錯誤訊息的話,請在防火牆的部份允許25 port 通過使用。

3.2 防火牆設定允許25 port 通過使用
首先,先確認ESXi在防火牆部份是否有開啟25 port
確認方式有兩種,請選一種即可。

方式一:

  1. [Configuration]→[Security Profile]
    查看 Firewall 看是否有25 port

  2. 如果在 Firewall 沒看到的話,可點選 [Properties]。查看更詳細的設定

方式二:
透過 ssh 連到server上設定

  1. 把防火牆所有的設定都列出來,並查看是否有25 port

    ~ # esxcli network firewall ruleset list
    Name Enabled


    sshServer true
    sshClient false
    nfsClient false
    dhcp true
    dns true
    snmp true
    ntpClient false
    CIMHttpServer true
    CIMHttpsServer true
    CIMSLP true
    iSCSI false
    vpxHeartbeats true
    updateManager false
    faultTolerance true
    webAccess true
    vMotion true
    vSphereClient true
    activeDirectoryAll false
    NFC true
    HBR true
    ftpClient false
    httpClient false
    gdbserver false
    DVFilter false
    DHCPv6 false
    DVSSync false
    syslog false
    IKED false
    WOL true
    vSPC false
    remoteSerialPort false

  2. 加入25 port
    在查看list後發現沒有25 port,所以需要手動加入 [ E-MAIL SMTP]

    ~ # cd /etc/vmware/firewall/
    ~ # vi smtp.xml
    #在最後加入以下內容

  3. 重啟防火牆
    重啟後會看到多出SMTP 25port的設定

    ~ # esxcli network firewall refresh
    ~ # esxcli network firewall ruleset list
    Name Enabled


    中間略過
    DVSSync false
    syslog false
    IKED false
    WOL true
    vSPC false
    remoteSerialPort false
    SMTP true

  4. 此時在回過頭來看,就會在 Firewall 內看到多出[SMTP 25(TCP) All],這表示25 port 已加入到防火牆內了。

4. 防火牆開機設定
由於VMware ESXi 在重開機後會還原資料,因此在防火牆的部份則需要額外的設定。
了解 [防火牆port的設定] 後。接下來說明如何重開機自動加入防火牆規則。

4.1 首先編寫防火牆規則
編寫好的防火牆規則所儲存的地方(建議存到/vmfs/volumes/datastore1內或是自行設定的NAT內)以避免重開機後被刪除。

以下範例檔案存放在本機datastore1
腳本放在script資料夾,修改文件放在file資料夾
提供修改好的 service.xml 參考

~ # mkdir -p /vmfs/volumes/datastore1/tools/script
~ # mkdir  /vmfs/volumes/datastore1/tools/file
~ # cd /vmfs/volumes/datastore1/tools/file 
~ # cp /etc/vmware/firewall/service.xml /vmfs/volumes/datastore1/tools/file
~ # vi service.xml
# 在最下面加入E-MAIL SMTP內容
    <rule id='0002'>                
      <direction>inbound</direction> 
      <protocol>tcp</protocol>       
      <porttype>dst</porttype>                                 
      <port>                                                         
        <begin>1024</begin>             
        <end>65535</end>        
      </port>                        
    </rule>                                                    
    <enabled>false</enabled>                                                                                 
    <required>false</required>        
  </service>
<!-- E-MAIL SMTP --> 
  <service id='1000'>
    <id>SMTP</id>
    <rule>
      <direction>outbound</direction>
      <protocol>tcp</protocol>
      <porttype>dst</porttype>
      <port>25</port>
    </rule>
    <enabled>true</enabled>
    <required>false</required>
  </service>
</ConfigRoot>

4.2 編寫開機執行腳本
此腳本在做的是把已經修改好的service.xml,覆蓋掉原本的service.xml。然後在重啟防火牆。

~ # cd /vmfs/volumes/datastore1/tools/script   #若沒有tools資料夾請自行建立
~ # vi firewall.sh
#!/bin/sh
# Firewall rules
cp /vmfs/volumes/datastore1/tools/file/service.xml /etc/vmware/firewall/ 
esxcli network firewall refresh

~ # chmod 755 firewall.sh

4.3 寫入到rc.local讓開機自動跑firewall.sh

再來就可以重開機測試看是否設定正確。若是正確的話就可在防火牆List中看到SMTP

5. 設定排程
在設定排程的部份,也和設定MAIL的防火牆規則一樣,都會因重開而還原。
因此在這邊提供幾種方式,請依個人需求設定。(設定排程的方式還有很多種,以下只是提供參考)

設定script方式
此種設定方式比較適合主機數較多且方便統一管理。
使用此方式,會建議最好新增一個NFS且將設定資料都統一放到NFS內,之後在有需要的主機上在掛載NSF就可使用。

5.1 設定排程(root)
在這邊會要編修root,主要是為了日後如果有更多的排程要設定的話只需要改此root檔後,執行crontabs.sh此腳本就會自動覆蓋舊的root檔了。在日後的管理會較為方便。

~ # cp /var/spool/cron/crontabs/root /vmfs/volumes/datastore1/tools/file/
~ # cd /vmfs/volumes/datastore1/tools/file/
~ # chmod 744 root
~ # vi root
# 在最下面加入要設定的排程,這邊設定讓5分鐘跑一次看是否正常。時間部份可自行修改
# 此部份測試請拿小一點的VM測試才不會還沒備完又跑下一個。
#min hour day mon dow command
1    1    *   *   *   /sbin/tmpwatch.py
1    *    *   *   *   /sbin/auto-backup.sh
0    *    *   *   *   /usr/lib/vmware/vmksummary/log-heartbeat.py
*/5  *    *   *   *   /vmfs/volumes/datastore1/backup/lamw-ghettoVCB-518cef7/ghettoVCB.sh -a

5.2 設定crontabs.sh
/bin/kill $(cat /var/run/crond.pid) 為刪掉crond的pid
/usr/lib/vmware/busybox/bin/busybox crond 為重啟crond

~ # cd /vmfs/volumes/datastore1/tools/script
~ # vi crontabs.sh
#!/bin/sh
/bin/kill $(cat /var/run/crond.pid)                      
cp /vmfs/volumes/tools/file/root /var/spool/cron/crontabs
/usr/lib/vmware/busybox/bin/busybox crond 
~ # chmod 755 crontabs.sh

5.3 設定rc.local開機自動跑crontabs.sh

~ # vi /etc/rc.local
#在最下面加入此行
/vmfs/volumes/datastore1/tools/script/crontabs.sh

5.4 直接寫在rc.local
此方式比較適合單一主機或是管理人員較少的使用。
此方式的缺點就是,日後要設的排程多的時後,或是加入到rc.local內的東西變多時,在管理上會容易亂掉,管理較不方便。

~ # vi /etc/rc.local
#!/bin/sh

export PATH=/sbin:/bin

log() {
   echo "${1}"
   /bin/busybox logger init "${1}"
}

# execute all service retgistered in ${rcdir} ($1 or /etc/rc.local.d)
if [ -d "${1:-/etc/rc.local.d}" ] ; then
   for filename in $(find "${1:-/etc/rc.local.d}" | /bin/busybox sort) ; do
      if [ -f "${filename}" ] && [ -x "${filename}" ]; then
         log "running ${filename}"
         "${filename}"
      fi
   done
fi

#crontabs
/bin/kill $(cat /var/run/crond.pid)  
/bin/echo " */5    *    *   *   *   /vmfs/volumes/datastore1/backup/lamw-ghettoVCB-518cef7/ghettoVCB.sh -a”>> /var/spool/cron/crontabs/root
/bin/busybox crond 

上一篇 (VMesxi 備份篇-Day21) VMware ESXi 備份 ghettoVCB.sh 基本設定
下一篇 (VMesxi 備份篇-Day23) VMware ESXi 備份還原ghettoVCB-restore.sh 設定
VMware vSphere Hypervisor (ESXi) 30天基礎速成班(文章彙整)


http://blog.faq-book.com/


上一篇
(VMesxi 備份篇-Day21) VMware ESXi 備份 ghettoVCB.sh 基本設定
下一篇
(VMesxi 備份篇-Day23) VMware ESXi 備份還原ghettoVCB-restore.sh 設定
系列文
VMware vSphere Hypervisor (ESXi) 30天基礎速成班39
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
fireflybug
iT邦研究生 4 級 ‧ 2012-11-05 17:16:01

ESXi 5.1 執行這行有誤
/bin/busybox crond

fireflybug iT邦研究生 4 級 ‧ 2012-11-05 17:20:31 檢舉

crond

/usr/lib/vmware/busybox
/usr/lib/vmware/busybox/bin/busybox

fireflybug iT邦研究生 4 級 ‧ 2012-11-05 18:00:54 檢舉

測試後要用
/usr/lib/vmware/busybox/bin/busybox

willion0736 iT邦研究生 3 級 ‧ 2012-11-05 18:05:41 檢舉

讚讚讚
感謝告知

我要留言

立即登入留言